package BusinessLayer;

import java.util.ArrayList;

import PersistanceLayer.AbstractDAOFactory;

public class Departement extends Cyrene {

	/**
	 * nom du departement
	 */
  private String nomDepartement;

  /**
   * nom mnemotenique du departement
   */
  
  private String mNemo;
/**
 * versionDiplome est le code du diplome dans la base
 */
  
  private  String versionDiplome;
 /**
  * constructeur du departement
  * @param nomDepartement
  * @param mNemo
  * @param versionDiplome
  */
  public Departement( String nomDepartement, String mNemo, String versionDiplome){
	  this.nomDepartement=nomDepartement;
	  this.mNemo=mNemo;
	  this.versionDiplome= versionDiplome;

	  
	  chargementEnsembleAnnees();
  }
  
  /**
   * Cyrene 
   */
  //private  Cyrene  myCyrene;*/

  private ArrayList<Annee> ensAnnee;

  /**
   * setter nomDepartement
   * @param nomDepartement
   */
public void setNomDepartement(String nomDepartement) {
	this.nomDepartement = nomDepartement;
}

/**
 * getter nomDepartement
 * @return
 */
public String getNomDepartement() {
	return nomDepartement;
}

/**
 * setter du nom mnemotenique
 * @param mNemo
 */
public void setmNemo(String mNemo) {
	this.mNemo = mNemo;
}

/**
 * getter du mNemo
 * @return le nom mnemotenique du departement
 */
public String getmNemo() {
	return mNemo;
}

/**
 * setter du code du departement
 * @param versionDiplome
 */
public void setVersionDiplome(String versionDiplome) {
	this.versionDiplome = versionDiplome;
}

/**
 * getter du code du departement
 * @return
 */
public String getVersionDiplome() {
	return versionDiplome;
}

/**
 * setter de l ensemble des annee
 * @param ensAnnee
 */
public void setEnsAnnee(ArrayList<Annee> ensAnnee) {
	this.ensAnnee = ensAnnee;
}

/**
 * getter de l ensemble de l annee
 * @return l ensemble des annee
 */
public ArrayList<Annee> getEnsAnnee() {
	return ensAnnee;
}

public void chargementEnsembleAnnees() {
	this.ensAnnee = AbstractDAOFactory.getFactory(0).getAnneeDAO().getListe(this.nomDepartement);
	
}



public String toString(){
	return "le nom du departement: "+ nomDepartement;
}

/**
 * 
 * @return retourne les noms d'ann�e du d�partement courant
 */
public ArrayList<String> getNomsEnsAnnees() {
	ArrayList<String> res = new ArrayList<String>();
	
	for(int i=0;i<this.ensAnnee.size();i++)
		res.add(this.ensAnnee.get(i).getVersionEtape());
	
	return res;
}

/**
 * pr�-requis : il existe parmis les annees du d�partement une annee correspondant
 * � la version �tape transmise en param�tre
 * @param nom version �tape de l'ann�e que l'on souhaite
 * @return l'objet Annee correspondant � la version �tape transmise en param�tre
 */
public Annee getAnne(String nom) {
	int i=0;
	
	while(i<this.ensAnnee.size() && !this.ensAnnee.get(i).getVersionEtape().equals(nom))
		i++;
	return this.ensAnnee.get(i);
	
}



  
  
    //public Cyrene 1;


}

